Clear the toplevel ordering list in all places where the order is
authorRichard Hult <richard@imendio.com>
Sun, 17 Feb 2008 10:01:52 +0000 (10:01 +0000)
committerRichard Hult <rhult@src.gnome.org>
Sun, 17 Feb 2008 10:01:52 +0000 (10:01 +0000)
2008-02-17  Richard Hult  <richard@imendio.com>

* gdk/quartz/gdkwindow-quartz.c: (show_window_internal),
(_gdk_quartz_window_detach_from_parent),
(_gdk_quartz_window_attach_to_parent), (gdk_window_focus): Clear
the toplevel ordering list in all places where the order is
potentially changed. Fixes mouse focus issues for windows with
a transient parent set.

svn path=/trunk/; revision=19604

ChangeLog
gdk/quartz/gdkwindow-quartz.c

index c5938eaa78f1913d93b4c8822d0c074ca4436afc..731fa6b501ac58f392e1f905c986bb0c23e6b66a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-02-17  Richard Hult  <richard@imendio.com>
+
+       * gdk/quartz/gdkwindow-quartz.c: (show_window_internal),
+       (_gdk_quartz_window_detach_from_parent),
+       (_gdk_quartz_window_attach_to_parent), (gdk_window_focus): Clear
+       the toplevel ordering list in all places where the order is
+       potentially changed. Fixes mouse focus issues for windows with
+       a transient parent set.
+
 2008-02-17  Richard Hult  <richard@imendio.com>
 
        * gdk/quartz/gdkevents-quartz.c
index bbcc18199a3767ed63d3c38b6cebe452eb62be79..feb31d4fdafeeeae0fa39379c75671bb787fee74 100644 (file)
@@ -1078,6 +1078,7 @@ show_window_internal (GdkWindow *window,
                   private->window_type != GDK_WINDOW_TEMP);
 
       [(GdkQuartzWindow*)impl->toplevel showAndMakeKey:make_key];
+      clear_toplevel_order ();
     }
   else
     {
@@ -1123,6 +1124,7 @@ _gdk_quartz_window_detach_from_parent (GdkWindow *window)
 
       parent_impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (impl->transient_for)->impl);
       [parent_impl->toplevel removeChildWindow:impl->toplevel];
+      clear_toplevel_order ();
     }
 }
 
@@ -1144,6 +1146,7 @@ _gdk_quartz_window_attach_to_parent (GdkWindow *window)
 
       parent_impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (impl->transient_for)->impl);
       [parent_impl->toplevel addChildWindow:impl->toplevel ordered:NSWindowAbove];
+      clear_toplevel_order ();
     }
 }
 
@@ -2311,6 +2314,7 @@ gdk_window_focus (GdkWindow *window,
         {
           GDK_QUARTZ_ALLOC_POOL;
           [impl->toplevel makeKeyAndOrderFront:impl->toplevel];
+          clear_toplevel_order ();
           GDK_QUARTZ_RELEASE_POOL;
         }
     }